/**
 * mixin全局混入
 * 好处作用：复用组件逻辑
 */
import store from '@/store'

export default {
  data () {
    return {
      // 全局混入一个变量
      yuntian: 10000
    }
  },
  methods: {
    // 定义全局混入公共方法
    /**
     *
     * @param {*} point 检测的权限点标识（身份象征）
     */
    checkPoints (point) {
      /**
       * 检查当前登录人是否可以使用某个按钮权限：
       * 1. 获取登录人按钮权限点数据（points），进行是否有权限判断=> 返回true|false
       *    1. points数组中拥有身份标识：显示按钮
       *    2. points数组中没有身份标识：不显示按钮
       * 2. 在需要做权限控制页面下的按钮上使用=》v-if="checkPoints(当前按钮功能的身份标识)"
       */
      // 原因：退出登录时重置用户数据，会响应式刷新，执行checkPermission获取数据异常
      // try {
      //   const { points } = store.state.user.userInfo.roles
      //   return points.includes(point)
      // } catch (error) {
      //   console.log(error)
      // }
      const { userInfo } = store.state.user
      // 语法：?可选链 = 》属性?.属性 => 代码健壮性（鲁棒性）
      return userInfo.roles?.points.includes(point)
    }
  }
}
